#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <sys/types.h>

// 阻塞读终端
int main(int argc, char* argv[])
{
    // int fd = open("/dev/tty", O_RDWR);   // 阻塞
    int fd = open("/dev/tty", O_RDWR | O_NONBLOCK);   // 阻塞

    char buf[256];
    int ret = 0;

    while(1) {
        ret = read(fd, buf, sizeof(buf));
        if(ret < 0) {
            perror("read error: ");
            printf("ret = %d\n", ret);
        }
        if(ret) {
            printf("buf is %s\n", buf);
        }
        printf("hahah\n");
        sleep(1);  // 非阻塞测试
    }
    
    close(fd);

    return 0;
}

